<?php if ( ! defined('BASEPATH')) exit('No se permite acceso directo al script');
class Extras_form {
	
	public function crearCabecera($headers, $btn_extra = TRUE)
	{
		$cabecera = "<thead>
    					<tr>";
		foreach ($headers as $head) {
			$cabecera .= "<th>$head</th>";
		}

		if($btn_extra)
		{ $cabecera .= "<th></th>"; }

		$cabecera .= "	</tr>
  					</thead>";
  		return $cabecera;
	}

	public function crearRenglon($datos, $es_busqueda, $nombre_controlador, $id_elemento, $btn_extras = array())
	{
		if($es_busqueda) $fila = "<tr ondblclick=\"cargarSeleccionBusqueda('$nombre_controlador', $id_elemento)\">";
		else $fila = "<tr>";

		foreach ($datos as $dato) {
			$fila .= "<td>$dato</td>";
		}

		if(!$es_busqueda)
		{
			$fila .= "<td>";
			foreach ($btn_extras as $boton => $extra) {
				switch ($boton) {
					case 'ver':
					case 'ver2':
					case 'ver3':
						$title = 'Ver los datos del elemento actual';
						$icono = 'fa-file-text-o';
						$mostrarTexto = TRUE;
						if(is_array($extra)) {
							if(isset($extra['nombre_controlador'])) $nombre_controlador = $extra['nombre_controlador'];
							if(isset($extra['id_elemento'])) $id_elemento = $extra['id_elemento'];
							if(isset($extra['title'])) $title = $extra['title'];
							if(isset($extra['icono'])) $icono = $extra['icono'];
							$mostrarTexto = FALSE;
						}

						$fila .= $this->viewButton($nombre_controlador, $id_elemento, $title, $icono, $mostrarTexto) . '&nbsp;';
						break;

					case 'editar':
						$fila .= $this->editButton($nombre_controlador, $id_elemento) . '&nbsp;';
						break;

					case 'borrar':
						$fila .= $this->deleteButton($nombre_controlador, $id_elemento) . '&nbsp;';
						break;

					case 'adjunto':
						$fila .= $this->adjuntoButton($nombre_controlador, $id_elemento) . '&nbsp;';
						break;

					case 'ver_proveedores':
						$fila .= $this->verProveedorButton($id_elemento) . '&nbsp;';
						break;
					
					case 'cambiar_estado':
						$fila .= $this->cambiarEstadoButton($nombre_controlador, $extra[0], $id_elemento, $extra[1]);
						break;
					
					default:
						break;
				}
			}
			$fila .= "</td>";
		}
		else $fila .= "<td>" . $this->selectButton($nombre_controlador, $id_elemento) . "</td>";

		$fila .= "</tr>";
  		return $fila;
	}

	public function newButton($nombre_controlador, $parametros = 'NULL') {
		$boton_nuevo = "<div align='center'>
							<button onclick=\"editar('" . $nombre_controlador . "', '$parametros')\" type='button' 
								class = 'btn btn-default' title = 'Crear un nuevo elemento' alt = 'Nuevo'>
					          	<span><i class='fa fa-file-o'></i></span> Nuevo
					        </button>
					    </div>";
  						
		return $boton_nuevo;
	}

	public function editButton($nombre_controlador, $id_elemento) {
		$boton_editar = "<button onclick=\"editar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Editar el elemento actual' alt = 'Editar'>
				          	<span><i class='fa fa-pencil txt-primary'></i></span> Editar
				        </button>";
		return $boton_editar;
	}

	public function cambiarClaveButton($nombre_controlador, $id_elemento) {
		$id_elemento = "'$id_elemento/2'"; # La acción 2 corresponde a Cambiar clave
		$boton_editar = "<button onclick=\"editar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Cambiar clave' alt = 'Cambiar Clave'>
				          	<span><i class='fa fa-lock'></i></span> Cambiar Clave
				        </button>";
		return $boton_editar;
	}

	public function cambiarFotoButton($nombre_controlador, $id_elemento) {
		$id_elemento = "'$id_elemento/3'"; # La acción 3 corresponde a Cambiar foto
		$boton_editar = "<button onclick=\"editar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Cambiar Foto' alt = 'Cambiar Foto'>
				          	<span><i class='fa fa-photo txt-success'></i></span> Cambiar Foto
				        </button>";
		return $boton_editar;
	}

	public function viewButton($nombre_controlador, $id_elemento, $title, $icono, $mostrarTexto = TRUE) {
		$boton_editar = "<button onclick=\"visualizar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = '" . $title . "' alt = 'Ver'>
				          	<span><i class='fa " . $icono . " txt-default'></i></span> " . ($mostrarTexto ? 'Ver' : '' ) .
				        "</button>";
		return $boton_editar;
	}

	public function deleteButton($nombre_controlador, $id_elemento) {
		$boton_eliminar = "<button onclick=\"borrar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Borrar el elemento actual' alt = 'Borrar'>
				          	<span><i class='fa fa-trash-o txt-danger'></i></span> Borrar
				        </button>";
		return $boton_eliminar;
	}

	public function verProveedorButton($id_elemento) {
		$nombre_controlador = 'prod_prov';
		$boton_eliminar = "<button onclick=\"ver_proveedores('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Ver Proveedores' alt = 'Proveedores'>
				          	<span><i class='fa fa-suitcase'></i></span>
				        </button>";
		return $boton_eliminar;
	}

	public function adjuntoButton($nombre_controlador, $id_elemento) {
		if($nombre_controlador == 'prod_productos') $nombre_controlador = 'prod_adjuntos';
		else $nombre_controlador = 'prod_adjuntosMoto';

		$boton_adjunto = "<button onclick=\"editar('" . $nombre_controlador . "', " . $id_elemento . ")\" type='button' 
						class = 'btn btn-default' title = 'Adjuntos' alt = 'Adjuntos'>
				          	<span><i class='fa fa-paperclip'></i></span>
				        </button>";
		return $boton_adjunto;
	}

	public function examinarButton()
	{
		$boton_examinar = "<input type='file' name='userfile' id='userfile'>";

		return $boton_examinar;
	}

	public function editExportButton($tipo_exp, $nombre_controlador, $id_elemento) {
		switch ($tipo_exp) {
			case 'conf_XLS':
				$nombre = 'Conf. Exportar Excel';
				$icono = 'fa fa-file-excel-o';
				$onclick = "\"editar('" . $nombre_controlador . "', " . $id_elemento . ")\"";
				break;
			
			default:
				# code...
				break;
		}

		$boton_editar = "<button onclick = $onclick type='button' 
						class = 'btn btn-default' title = '$nombre' alt = '$nombre'>
				          	<span><i class='$icono'></i></span> $nombre
				        </button>";
		return $boton_editar;
	}

	public function icono_ayuda($msjMostrar, $id_ayuda, $tamanio = 1)
	{
		$ancho = $tamanio == 1 ? '80%' : ($tamanio == 2 ? '50%' : '30%');
		$icono = "<i id='icono_ayuda$id_ayuda' class='fa fa-info-circle txt-info' onmouseover='mostrar_msjAyuda(\"$msjMostrar\", \"$id_ayuda\", \"$ancho\")' onmouseout='ocultar_msjAyuda(\"$id_ayuda\")'></i>";
		$icono .= "<div id='box_ayuda$id_ayuda' class='box_ayuda_oculto'></div>";
		return $icono;
	}

	public function inputAutocompletar($nombre_controlador, $valorId, $campoNombre, $valorNombre)
	{	
		$campoNombreHTML = 'f_txt_' . $this->quitarCaracteresEspeciales($campoNombre);
		$campoNombreHTMLid = $campoNombreHTML . '_id';

		$boton_buscar = "<input type='hidden' name='$campoNombreHTMLid' id='$campoNombreHTMLid' value=$valorId>";
		$boton_buscar .= "<div class='input-group'>
	      					<input type='text' class='form-control' name='$campoNombreHTML' id='$campoNombreHTML' 
	      					placeholder='$campoNombre' value='$valorNombre' onkeyup=\"autocompletado(event, this, '$nombre_controlador', '$campoNombreHTML')\">
	      						<span title='Ingrese texto para buscar coincidencias' class='input-group-addon'><i class='fa fa-search'></i></span>
	      				  </div>";
	    $boton_buscar .= "<div id='sugerencias_$campoNombreHTML' class='box_sugerencias'></div>";
	    
	    return $boton_buscar;
	}

	public function quitarCaracteresEspeciales($cadena)
	{
		$cadena = htmlentities($cadena);
		$cadena = preg_replace('/\&(.)[^;]*;/', '\\1', $cadena);
		$cadena = strtolower($cadena);
		return $cadena;
	}


	public function searchButton($nombre_controlador, $nombreEntidad, $valorId, $campoNombre = TRUE, $campoCod = FALSE) {
		$entidadHTML = 'txt_' . $nombre_controlador;
		$idEntidadHTML = 'txt_' . $nombre_controlador . '_id';
		$codigoEntidadHTML = 'txt_' . $nombre_controlador . '_cod';

		$campos_buscar = "<div class='row form-group box_busqueda'>
							Buscar $nombreEntidad</br>
							<label class='col-sm-2 control-label txt-info'></label>";

		if($campoCod) $campos_buscar .= "<div class='col-sm-2'>
											<input type='text' class='form-control' name='$codigoEntidadHTML' id ='$codigoEntidadHTML' placeholder='Código'>
										</div>";

		$campos_buscar .= "<div class='col-sm-4'>
							<input type='text' class='form-control' name='$entidadHTML' id ='$entidadHTML' placeholder='Nombre $nombreEntidad'>
						   </div>";
		$campos_buscar .= "<div class='col-sm-3'>
							<button onclick=\"cargarSegunFiltros('$nombre_controlador')\" type='button' class = 'btn btn-default' title = 'Cargar datos según lo ingresado' alt = 'Cargar datos según lo ingresado'>
				          		<span><i class='fa fa-spinner'></i></span> Cargar
				        	</button>";
		$campos_buscar .= "<button onclick=\"busqueda('$nombre_controlador')\" type='button' class = 'btn btn-default' title = 'Abrir formulario de búsqueda' alt = 'Abrir formulario de búsqueda'>
				          		<span><i class='fa fa-search'></i></span> Buscar
				        	</button>
				          </div>
				         </div>";
		return $campos_buscar;
	}

	public function selectButton($nombre_controlador, $id_elemento) {
		$boton_seleccionar = "<button onclick=\"cargarSeleccionBusqueda('$nombre_controlador', $id_elemento)\" type='button' 
								class = 'btn btn-default' title = 'Seleccionar el elemento actual' alt = 'Seleccionar'>
						          	<span><i class='fa fa-check txt-success'></i></span>
						        </button>";
		return $boton_seleccionar;
	}

	public function cambiarEstadoButton($nombre_controlador, $metodo_cambio_estado, $id_elemento, $baja) {
		$texto_boton = $baja ? 'Activar' : 'Desactivar';
		$clase_boton = $baja ? 'success' : 'danger';
		$boton = "<button onclick=\"ejecutar_accion_datos('$nombre_controlador/$metodo_cambio_estado/$id_elemento')\" type='button' 
						class = 'btn btn-$clase_boton' title = 'Cambiar estado del usuario' alt = '$texto_boton'>
				          	<span><i class='fa fa-exchange'></i></span> $texto_boton
				        </button>";
		return $boton;
	}
}
/* Fin del archivo */